package com.itheima.test14;

/**
 * @Author:gy
 * @Date: 2025/09/01 17:26
 * @Description:
 */
public class Producer extends Thread{
    //生产者
    /* 生产者:   实现Runable接口,重写run();线程任务
                判断是否有包子,决定线程任务是否执行
                如果有包子,就进去等待状态,如果没有包子,继续生产包子
                生产完包子之后,更新桌子上的状态,唤醒消费者去吃包子
    */

    @Override
    public void run() {
        while(true){
            synchronized (Desk.lock) {
                //如果吃完了 也就没有生产的必要了
                if(Desk.count==0){
                    break;
                }else{
                    //包子还没有吃完
                    if(!Desk.flag){
                        //没有包子我才生产
                        System.out.println("厨师正在做第"+(11-Desk.count)+"个包子");
                        Desk.flag = true;
                        Desk.lock.notifyAll();;
                    }else{
                        //有包子
                        try {
                            Desk.lock.wait();
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }
                }
            }
        }
    }
}
